package org.zdc.pivot.wtk;

interface IApplication 
{
	/**
	 * 程序启动时调用
	 * @param	display
	 * @param	properties
	 */
	function startup(display:Display, properties:Hash<String>):Void;
	
	/**
	 * 程序关闭时调用
	 * @param	optional
	 * @return
	 */
	function shutdown(optional:Bool):Bool;
	
	/**
	 * 调用以通知程序被挂起
	 */
	function suspend():Void;
	
	/**
	 * 当程序恢复的时候调用
	 */
	function resume():Void;
}

/**
 * 可选接口，用来允许应用程序显示关于自己的信息
 */
interface IAboutHandler 
{
	function aboutRequested():Void;
}

/**
 * 可选接口，允许程序处理未被处理的键盘事件（没有组件有输入焦点时的击键）
 */
interface IUnprocessedKeyHandler
{
	function keyTyped(character:String):Void;
	function keyPressed(keyCode:Int, keyLocation:KeyLocation):Void;
	function keyReleased(keyCode:Int, keyLocation:KeyLocation):Void;
}

/**
 * 可选接口，允许应用程序处理在用户输入事件抛出的未处理异常
 */
interface IUncaughtExceptionHandler 
{
	function uncaughtExceptionThrown(e:Dynamic):Void;
}

